home *** CD-ROM | disk | FTP | other *** search
- unit TestReg;
-
- interface
-
- procedure Register;
-
- implementation
-
- uses
- TestComp, Classes, DsgnIntf, SysUtils;
-
- type
- TTestProperty = class(TIntegerProperty)
- public
- function GetAttributes: TPropertyAttributes; override;
- function GetValue: string; override;
- procedure GetValues(Proc: TGetStrProc); override;
- procedure SetValue(const Value: string); override;
- end;
-
- function TTestProperty.GetAttributes: TPropertyAttributes;
- begin
- //Request list of values
- Result := [paMultiSelect, paValueList, paRevertable];
- end;
-
- function TTestProperty.GetValue: string;
- begin
- //Try and get nice textual name
- if not TestValueToIdent(TTestRange(GetOrdValue), Result) then
- Result := IntToStr(GetOrdValue)
- end;
-
- procedure TTestProperty.GetValues(Proc: TGetStrProc);
- begin
- //Call subrange type helper routine
- GetTestRangeValues(Proc);
- end;
-
- procedure TTestProperty.SetValue(const Value: string);
- var
- NewValue: Longint;
- begin
- //Try and translate from textual name
- if IdentToTestValue(Value, NewValue) then
- SetOrdValue(NewValue)
- else
- //Otherwise use numeric value
- inherited SetValue(Value);
- end;
-
- procedure Register;
- begin
- RegisterComponents('Clinic', [TTestComponent]);
- RegisterPropertyEditor(TypeInfo(TTestRange), TTestComponent, 'Test', TTestProperty)
- end;
-
- end.
-